1
Meccanica della chiamata al metodo
AI035Lesson 13
00:00

In Ruby, una chiamata a un metodo non è un salto statico a un indirizzo di memoria; è un evento di passaggio del messaggio. Quando invochi un metodo, stai inviando un messaggio a un destinatario. Questo messaggio è composto dal nome del metodo, dagli argomenti opzionali e da un possibile associazione blocco.

1. Sintassi della chiamata e ambiguità

Ruby consente una grande flessibilità: Foo.Bar e Foo.Bar() sono identici. Tuttavia, Foo::Bar si riferisce di solito a una costante, mentre Foo::Bar() forza una chiamata al metodo. Le parentesi vengono spesso omesse per creare esperienze simili a DSL in cui i metodi sembrano proprietà.

2. Scomposizione degli operatori

Gli operatori sono in realtà metodi ridefinibili. L'espressione expr1 + expr2 è zucchero sintattico per (expr1).+(expr2). Questo vale per gli operatori unari (-obj), binari (a < b), e operatori suffissi.

destinatarioMessaggio (Metodo)Blocco ausiliarioconsegna il controllo

3. Il meccanismo yield

I metodi usano yield per spostare il flusso di controllo nel blocco associato. Usando Kernel.block_given?, un metodo può decidere dinamicamente come gestire la logica in base al contesto del chiamante.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>